$filters */ public function export(User $actor, array $filters): ExportLog { $verifications = $this->verificationQuery->build($filters)->get(); $fileName = 'finance-verification-'.now()->format('Ymd-His').'.xlsx'; $path = 'exports/finance/'.$fileName; Storage::disk('local')->makeDirectory('exports/finance'); $absolutePath = Storage::disk('local')->path($path); $this->export->write($verifications, $absolutePath); $firstApplication = $verifications->first()?->application; $electionId = $firstApplication instanceof Application ? $firstApplication->election_id : null; $log = ExportLog::query()->create([ 'election_id' => $electionId, 'generated_by_user_id' => $actor->id, 'generated_at' => now(), 'report_type' => 'finance_verification_list', 'filter_parameters' => $filters, 'file_name' => $fileName, 'disk' => 'local', 'path' => $path, ]); activity('exports') ->performedOn($log) ->causedBy($actor) ->withProperties([ 'report_type' => 'finance_verification_list', 'filters' => $filters, 'row_count' => $verifications->count(), ]) ->log('finance_verification_export_generated'); return $log; } }