lotteryAdmin(); AdminAccountScopeGuard::assertPlatformAccount($admin_user); if ((int) $actor->getKey() === (int) $admin_user->getKey()) { return ApiMessage::errorResponse($request, 'admin.user_cannot_delete_self', ErrorCode::ValidationFailed->value, null, 422); } $admin_user->load('roles'); if ($admin_user->isSuperAdmin()) { $hasOther = AdminUser::query() ->whereKeyNot($admin_user->getKey()) ->whereHas('roles', static fn ($q) => $q->where('admin_roles.slug', AdminUser::ROLE_SUPER_ADMIN)) ->exists(); if (! $hasOther) { return ApiMessage::errorResponse($request, 'admin.user_cannot_delete_last_super_admin', ErrorCode::ValidationFailed->value, null, 422); } } $before = AdminUserApiPresenter::listItem($admin_user); $id = (int) $admin_user->id; $admin_user->delete(); AuditLogger::recordForAdmin( $actor, $request, 'system', 'admin_user.delete', 'admin_user', (string) $id, $before, null, ); return ApiResponse::success(['deleted' => true, 'id' => $id]); } }