label('Refresh evidence') ->icon('heroicon-o-arrow-path') ->color('primary') ->requiresConfirmation() ->action(function (): void { $user = auth()->user(); if (! $user instanceof User) { abort(403); } app(EvidenceSnapshotService::class)->refresh($this->record, $user); Notification::make()->success()->title('Refresh evidence queued')->send(); }), ) ->requireCapability(Capabilities::EVIDENCE_MANAGE) ->apply(), UiEnforcement::forAction( Actions\Action::make('expire_snapshot') ->label('Expire snapshot') ->icon('heroicon-o-x-circle') ->color('danger') ->hidden(fn (): bool => ! EvidenceSnapshotResource::canExpireRecord($this->record)) ->requiresConfirmation() ->action(function (): void { $user = auth()->user(); if (! $user instanceof User) { abort(403); } app(EvidenceSnapshotService::class)->expire($this->record, $user); $this->refreshFormData(['status', 'expires_at']); Notification::make()->success()->title('Snapshot expired')->send(); }), ) ->requireCapability(Capabilities::EVIDENCE_MANAGE) ->apply(), ]; } }