Такое поведение ожидается и задокументировано в ярко-красном предупреждении:
При выпуске массового обновления через Eloquent события модели saved
и updated
не будут запускаться для обновленных моделей.,Это происходит потому, что модели никогда не извлекаются при массовом обновлении.
https://laravel.com/docs/5.7/eloquent#events
Это связано с тем, что базовый запрос SQL, который Eloquent генерирует для оператора массовой вставки / обновленияотличается от запроса на обновление одной строки, и в результате Eloquent не может получить список вставленных идентификаторов из запроса.
Если вам нужно отправить события, созданные моделью, вам нужновместо этого сохраняйте модели по очереди:
foreach($departments as $department) {
Jobdescription::create([
'department_id' => $department,
'name' => $name,
'description' => $description,
]);
}