create(); // Get users belonging to this planner $users = User::where('planner_id', $planner->id)->get(); if ($users->isEmpty()) { $this->command->warn('No users found for planner. Skipping dishes seeder.'); return; } $userIds = $users->pluck('id')->toArray(); // Build possible user combinations (individual users + all users together) $userOptions = collect($userIds)->map(fn ($id) => [$id])->toArray(); $userOptions[] = $userIds; // all users collect([ 'Lasagne', 'Pizza', 'Burger', 'Fries', 'Salad', 'Sushi', 'Pancakes', 'Ice Cream', 'Spaghetti', 'Mac and Cheese', 'Steak', 'Chicken', 'Beef', 'Pork', 'Fish', 'Chips', 'Cake', ])->each(function (string $name) use ($planner, $userOptions) { $dish = Dish::factory()->create([ 'planner_id' => $planner->id, 'name' => $name, ]); $dish->users()->attach($userOptions[array_rand($userOptions)]); }); } }