class::create($data); return $user; } public function loginAdmin(string $email, string $password): array { $admin = Admin::whereEmail($email)->first(); if (! $admin) { throw new Exception('wrong_email'); } $this->comparePassword($password, $admin->password); return [ 'admin' => [ 'id' => $admin->id, 'email' => $admin->email, 'password' => $admin->password, ], 'token' => $admin->createToken('admin_login_token_name')->plainTextToken, ]; } public function logout(): bool { $user = Auth::user(); // dd($user); // $user->tokens()->delete(); return true; } private function comparePassword(string $password, string $hash) { Hash::check($password, $hash) ?: throw new Exception('invalid_credential'); } }