Суть проста, если нужно обновлять много данных, то просто заключите часть запросов в транзакции.

// Получаем данные, к примеру из базы
$data = DB::table('users')->get();
$counter = 0;
foreach($data as $value){
    // Если счётчик в 0, то стартуем транзакцию
    if($counter == 0)
        DB::beginTransaction();
    }
    $counter++;

    // Выполняем какие-то действия
    $type = $value->type === 2?5:1;

    // Обновляем данные
    DB::table('users')->where('id', $value->id)->update(array('type' => $type));

    // Счётчик достиг нужного порога - коммитим изменения в DB
    if($counter >= 999){
        DB::commit();
        $counter = 0;
    }
}

// Снова коммит для оставшихся
DB::commit();

Таким способом обновление данных займёт гораздо меньше времени.