Laravel прекрасен и продуман ) В нём есть и заготовка для организации
Очереди задач.
В общем ваша задача выглядит как преобразование из возможно параллельных запросов в последовательные.
Очередь задач с единственным рабочим для этого вполне подходит.
Через artisan создайте новый Job и перенесите в него логику обработки запроса. При поступлении api запроса просто создавайте новую задачу и возвращайте мгновенно ответ "Ок, принято".
Рабочий будет постоянно работать: обрабатывать долгоиграющую пачку или ожидать поступления новой задачи. Точно не возьмётся за 2 параллельно.
p.s. почему так долго обрабатываются 1000 чеков? База тормозит при вставке? Индексы не те?