скорее всего функция send ничего не возвращает, надо всегда возвращать статус 200 ok
в конце функции send что-то вроде
public function send($user_id, $value) {
...
return header("HTTP/1.1 200 OK");
}
UPDATE: значит проблема в том что при задержке в несколько секунд многие api расценивают это как неудачный ответ и пытаются получить ответ снова и снова.
Возможное решение:
Надо перед каждой задержкой в кеше ставить метку, что приложение заморожено и внутри функции send или после задержки размораживать приложение, удаляя эту метку. Пример
if (Cache::has('app_delayed')) {
return 'ok';
}
foreach ($arr_for_send as $value) {
Cache::put('app_delayed', true);
sleep(10);
Cache::forget('app_delayed');
send($data->object->user_id, $value);
}