where('id', $attachment)->first(); abort_if($row === null, 404); $ticketId = $row->ticket_id ?? null; if ($ticketId !== null) { $ticket = Ticket::query()->findOrFail((int) $ticketId); Gate::authorize('view', $ticket); } $disk = (string) ($row->disk ?? 'public'); $path = (string) ($row->path ?? $row->file_path ?? $row->stored_path ?? ''); $name = (string) ($row->original_name ?? $row->original_filename ?? $row->file_name ?? $row->filename ?? basename($path)); abort_if($path === '', 404); abort_unless(Storage::disk($disk)->exists($path), 404); return Storage::disk($disk)->download($path, $name); } }