Как не нужно использовать chunk()
Под капотом chunk() представляет из себя просто оффсет с лимитом. Каждый новый запрос выглядит примерно так:
Проблема может появиться если использовать данный метод совместно с update(). В примере ниже, вопреки ожиданиям, обновится только половина нужных вам записей.
Разберем запросы по шагам:
Для решения, как вариант, можно использовать метод take(), который по сути является алиасом к методу limit(). Все то же самое, только без оффсета:
Так же подойдет chunkById(). Данный метод отличается от chunk() тем, что использует id и limit вместо limit и offset. Для него запросы выглядят так:
Блок комментариев