createUsers($planner); $this->createDishes($planner, $users); $this->generateSchedule($planner); } private function createUsers(Planner $planner): array { $names = ['Alice', 'Bob', 'Charlie']; return array_map( fn (string $name) => User::create([ 'planner_id' => $planner->id, 'name' => $name, ]), $names ); } private function createDishes(Planner $planner, array $users): void { foreach ($this->dishNames as $dishName) { $dish = Dish::create([ 'planner_id' => $planner->id, 'name' => $dishName, ]); // Randomly assign dish to 1-3 users $count = rand(1, count($users)); $assignedUsers = collect($users)->random($count); $userIds = $count === 1 ? [$assignedUsers->id] : $assignedUsers->pluck('id'); $dish->users()->attach($userIds); } } private function generateSchedule(Planner $planner): void { resolve(GenerateScheduleForPeriodAction::class)->execute($planner); } }