whereIn("status", [Orders::STATUS_ONGOING]) ->whereRaw("DATEDIFF(`from_date`, now()) <= 0") ->whereDoesntHave("orderItems", function ($query) { $query->whereRaw("DATEDIFF(`service_date`, now()) = 0"); }) ->orderBy("id") ->limit($threshold) ->get(); foreach ($unGeneratedOrders as $order) { $service_date = date("Y-m-d"); if (Carbon::parse($order->to_date)->diffInDays($service_date, true) > 0) { DB::table((new Orders())->getTable())->where("id", $order->id)->update([ "to_date" => $service_date, "updated_at" => date("Y-m-d H:i:s") ]); } (new OrderItems())->createItem($order->id, $service_date); } return true; } }