Что насчет такого подхода: Модели описывают данные: типы, сеттеры, геттеры, логику изменения состояния объекта, скоупы. А манипуляции вроде создания новой записи и тп производятся через сервисные классы. То есть, например, меняем: %% $model = $this->model->create($request->all()); $this->modelService->handleUploadedImage($model->id); %% на %% $this->modelService->createModel($request->all()); %% Сервис уже обращается к модели и к своим закрытым методам для сохранения файла, возвращает созданную модель. Тогда получается есть конкретный метод для создания полноценной сущности вместе с файлом. Также тогда не понадобится модель внедрять в контроллер. Как считаешь? Или быть может правильнее иметь createModel в самой модели, а уже она будет запускать сервисный класс?