startOfDay()->addWeeks(2)); /** @var ScheduleRepository $scheduleRepository */ $scheduleRepository = resolve(ScheduleRepository::class); /** @var UserDishRepository $userDishRepository */ $userDishRepository = resolve(UserDishRepository::class); foreach ($period as $date) { $users->each(function (User $user) use ($date, $planner, $scheduleRepository, $userDishRepository) { $schedule = $scheduleRepository->findOrCreate($planner, $date); (new CreateScheduledUserDishAction)->execute( planner: $planner, schedule: $schedule, userDish: $userDishRepository->getRandomForDate($user, $date) ); }); } } }