Джоба внутри транзакции и afterCommit()

Если диспатчить джобу внутри DB::transaction, воркер может взять её раньше, чем транзакция закоммитится. Тогда джоба не находит только что созданную запись или видит старые данные. Лечится так: ProcessOrder::dispatch($order)->afterCommit(); Или 'after_commit' => true у соединения в config/queue.php, тогда это для всех джоб. Если транзакцию откатили, такие джобы вообще не отправятся в очередь.