caricaModello3d($record, $file); return $record; }); } protected function handleRecordUpdate(Model $record, array $data): Model { $file = Arr::pull($data, 'modello_3d_upload'); return DB::transaction(function () use ($record, $data, $file) { $record = parent::handleRecordUpdate($record, $data); $this->caricaModello3d($record, $file); return $record; }); } private function caricaModello3d(Model $record, mixed $file): void { $file = is_array($file) ? Arr::first($file) : $file; if (! $file instanceof TemporaryUploadedFile || ! $record instanceof Modello) { return; } try { app(Modelli3d::class)->carica($record, $file->getRealPath(), $file->getClientOriginalName()); } catch (Modello3dNonValido $e) { throw ValidationException::withMessages(['data.modello_3d_upload' => $e->getMessage()]); } $file->delete(); } }