При создании ModelRequest-класс, помимо валидации, там же нужно и реализовать проверку прав пользователей, и тогда наш реквест, добавить ``` return auth()->user()->can('create', Model::class); ``` в метод ``` public function authorize() ``` будет выглядеть так: ``` class ModelRequest extends FormRequest { public function authorize() { return auth()->user()->can('create', Model::class); //проверка прав пользовтеля перед валидацией } public function rules() { return [ 'title' => 'required|max:255', 'content' => 'required', 'make_id' => 'required|exists:makes,id' ]; } } ``` и с контролерра, тогода убираем ``` $this->authorize('create', Model::class); ``` и тогда у нас вконце поличится вот так: ``` public function store(ModelRequest $request) { $model = $this->model->create($request->all()); $this->modelService->handleUploadedImage($model->id); return redirect()->route('models.index')->with('message', __('car.model_added')); } ``` помимо чистого кода и тонкого контролера, делать это нужно для оптимизации, чтобы сервер лишний раз не делал валидацию, а потом уже проверял, можно ли пользователю это делать или нет. И плюс представим ситуацию, а нас есть некая форма, пользователь ее заполняет, и заполняет неправильно, срабатывает валидация, пользователь пробует еще пару раз(тратит времья), дальше валидация проходит, и потом срабативаєт Policy(политика прав пользователя), и припустим что у него нет прав на даное действие и она не пройшла. В итоге, трата времени пользователя.