validate([ 'attachments' => ['required', 'array', 'min:1'], 'attachments.*' => ['required', 'file', 'max:' . $maxUploadKilobytes, 'mimes:' . implode(',', $allowedMimes)], ]); $user = Auth::user(); abort_if($user === null, 403); $uploadedFiles = $request->file('attachments', []); $uploadedFiles = is_array($uploadedFiles) ? $uploadedFiles : [$uploadedFiles]; $uploadedFiles = array_values(array_filter($uploadedFiles, static fn ($file): bool => $file instanceof UploadedFile && $file->isValid())); $attachments->storeMany($ticket, $uploadedFiles, (int) $user->id); return redirect() ->route('helpdesk.tickets.show', $ticket) ->with('ticket-attachments-added', count($uploadedFiles) . ' supporting file' . (count($uploadedFiles) === 1 ? '' : 's') . ' uploaded.'); } }