validate([ 'attachments' => ['required', 'array', 'min:1'], 'attachments.*' => ['required', 'file', 'max:'.$maxUploadKilobytes, 'mimes:'.implode(',', $allowedMimes)], ], [ 'attachments.required' => 'Choose at least one supporting file.', 'attachments.*.file' => 'Each supporting file must be a valid uploaded file.', ]); $user = Auth::user(); abort_if($user === null, 403); $uploadedFiles = $request->file('attachments', []); $uploadedFiles = is_array($uploadedFiles) ? array_values($uploadedFiles) : [$uploadedFiles]; $attachments->storeMany($ticket, $uploadedFiles, (int) $user->id); $ticket->forceFill(['last_activity_at' => now()])->save(); return redirect() ->route('helpdesk.tickets.show', $ticket) ->with('ticket-attachments-added', count($uploadedFiles).' supporting file'.(count($uploadedFiles) === 1 ? '' : 's').' attached.'); } }