Самым простым способом, вероятно, было бы создание экземпляра углерода вне цикла, а затем добавление к нему. В настоящее время вы говорите Laravel отложить работу на 10 секунд от времени каждой итерации, но между (и более вероятно) будет меньше 1 мс между каждой итерацией, поэтому задания будут обрабатываться примерно в одно и то же время.
$now = now();
for ($i = 0; $i < $count; $i++) {
//The rest of your code
dispatch(new SendEmail($details))->delay($now->addSeconds(10));
}
Выше будет означать, что он будет добавлять 10 секунд к предыдущему времени. Если вы хотите, чтобы первая работа запускалась сразу (а затем откладывала каждую последующую на 10 секунд), вы можете добавить к экземпляру углерода после установки задержки для работы:
$now = now();
for ($i = 0; $i < $count; $i++) {
//The rest of your code
dispatch(new SendEmail($details))->delay($now);
$now->addSeconds(10);
}