where('user_id', $userId) ->where('workspace_id', $workspace->id) ->where('revoked', false) ->personalAccessApiKey() ->update(['revoked' => true]); } /** * Admins (and account owners acting as admin) may keep workspace API keys. * Any other role loses them. * * @return int Number of tokens revoked. */ public static function forUserUnlessAdmin( string $userId, Workspace $workspace, WorkspaceRole $role, ): int { if ($role === WorkspaceRole::Admin) { return 0; } return self::forUserOnWorkspace($userId, $workspace); } }