where('email', $email) ->first(); } public function findActiveById(int $id): ?AdminUser { return AdminUser::query() ->whereKey($id) ->where('status', 'active') ->first(); } public function touchLogin(AdminUser $admin, string $ip): void { $admin->last_login_at = now(); $admin->last_login_ip = inet_pton($ip) ?: null; $admin->save(); } public function setPassword(AdminUser $admin, string $plainPassword): void { $admin->password = $plainPassword; // ✅ 캐스트가 알아서 해싱함 $admin->must_reset_password = 0; $admin->save(); } }