label(__('panel.media.actions.reprocess_all')) ->icon('heroicon-o-arrow-path') ->color('gray') ->requiresConfirmation() ->modalDescription(__('panel.media.actions.reprocess_all_hint')) ->visible(fn () => Auth::user()?->can('media.view_any')) ->action(function (): void { Media::query()->update(['processed_at' => null]); Notification::make() ->title(__('panel.media.actions.reprocess_queued')) ->success() ->send(); }), ]; } public function getSubheading(): ?string { $total = Media::query()->get()->sum(fn (Media $m) => $m->totalSize()); return __('panel.media.subheading', [ 'count' => Media::query()->count(), 'size' => round($total / 1024 / 1024, 1), ]); } }