В документации на фреймворк я не заметил об этом ни слова. Но оказывается, в Ларавеле обновление моделей по $model->update() действительно происходит только если переданы данные, отличающиеся от уже сохраненных. А если данные переданы те же, никакого апдейта не случится, и даже updated_at останется тем же.
Заметил случайно, когда чесал репу — почему же я запускаю скрипт апдейта данных из внешнего реестра, а время в updated_at по-прежнему равно времени создания. Хотя и тесты проходят, и скрипт запускается без ошибок. А вон оно как.
Если все же нужно, чтобы время обновления поменялось даже если запроса не было, надо использовать метод $model->touch().
Мне кажется, такие вещи в документах нужно писать большими буквами рядом со счетчиком уже пострадавших программистов.

