ensureCanManageRounds($request, $room); $this->rounds->reset($room); return response()->noContent(); } public function reveal(Request $request, Room $room): Response { $this->ensureCanManageRounds($request, $room); $this->rounds->reveal($room); return response()->noContent(); } public function nextRound(Request $request, Room $room): Response { $this->ensureCanManageRounds($request, $room); $this->rounds->startNext($room); return response()->noContent(); } private function ensureCanManageRounds(Request $request, Room $room): void { $player = $request->attributes->get('currentPlayer'); abort_unless( $player instanceof Player && $player->room_id === $room->id && ($player->is_moderator || $room->allow_participants_to_manage_rounds), 403, ); } }