validated(); $user = User::query()->where('email', $credentials['email'])->first(); if (! $user || ! Hash::check($credentials['password'], $user->password)) { throw ValidationException::withMessages([ 'email' => __('api.auth.invalid_credentials'), ]); } $expirationMinutes = (int) config('sanctum.expiration'); $token = $user->createToken( 'api-token', ['*'], now()->addMinutes($expirationMinutes), )->plainTextToken; $guestTokenCookie = $request->cookie('guest_token'); $guestToken = is_string($guestTokenCookie) && $guestTokenCookie !== '' ? $guestTokenCookie : null; $this->guestCartMergeService->merge( $credentials['tenant_codigo'], $user, $guestToken, ); $response = response()->json([ 'code' => 'auth.login_success', 'message' => __('api.auth.login_success'), 'token' => $token, 'token_type' => 'Bearer', 'user' => UserResource::make($user), ]); if ($guestToken !== null) { $response->withCookie(Cookie::forget('guest_token')); } return $response; } }