Нужно наименьшим объемом кода сделать валидацию данных при $model->create($request->all()); Наподобие Esensi Model Traits, но хочется обойтись без сторонних пакетов.
Создайте основную модель, скажем, BaseModel.php
В ней переназначьте метод Create
public static function create(array $attributes = [])
{
// тут проводите свою валидацию, и возвращайте false если не прошли
$model = new static($attributes);
$model->save();
return $model;
}
Ну и все свои модели экстендите этой моделью вместо Illuminate\Database\Eloquent\Model
Нет, это плохой способ, т.к. create не деинственная точка входа, нужно скорее сам save переопределять, но его тоже вроде можно обойти. Потому проще воспользоваться готовым пакетом, а не ступать самому по граблям.