lotteryPlayer()` *(由 AppServiceProvider 注册的宏,返回 ?Player)。 */ class EnsurePlayerApi { public function handle(Request $request, Closure $next): Response { try { $player = app(PlayerTokenResolver::class)->resolve($request); } catch (PlayerAuthenticationException $e) { return ApiResponse::error($e->getMessage(), $e->lotteryCode, null, $e->httpStatus); } // 使用 attributes,避免与 Laravel 内置 input 混淆 $request->attributes->set('lottery_player', $player); return $next($request); } }