getSelectedRooms(); $availableRooms = $dto->travel->getAvailableRooms(); foreach ($selectedRooms as $roomSelection) { $room = $availableRooms[$roomSelection->roomId] ?? null; if (null === $room) { continue; // Skip if room not found } $capacityPerRoom = $room->minPax ?? 1; // Assign participants for each room quantity for ($i = 0; $i < $roomSelection->quantity; ++$i) { // Assign participants according to room capacity for ($j = 0; $j < $capacityPerRoom; ++$j) { if (isset($dto->participants[$participantIndex])) { $dto->participants[$participantIndex]->assignedRoomId = $room->id; ++$participantIndex; } } } } } }