create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); $token = $user->createToken('auth-token')->plainTextToken; return $this->created([ 'user' => new UserResource($user), 'token' => $token, ], 'User registered successfully'); } public function login(LoginRequest $request): JsonResponse { $user = User::query()->where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { return $this->unauthorized('Invalid credentials'); } $token = $user->createToken('auth-token')->plainTextToken; return $this->success([ 'user' => new UserResource($user), 'token' => $token, ], 'Login successful'); } public function logout(Request $request): JsonResponse { /** @var User $user */ $user = $request->user(); $user->currentAccessToken()->delete(); return $this->success(message: 'Logged out successfully'); } public function me(Request $request): JsonResponse { return $this->success(new UserResource($request->user())); } }