checkWorkspaceEntitlement($scope); } if ($scope instanceof User) { // Check user's owner workspace $workspace = $scope->ownedWorkspaces()->first(); if ($workspace && $this->checkWorkspaceEntitlement($workspace)) { return true; } // Legacy fallback: check user tier return $this->checkUserTier($scope); } return false; } /** * Check if workspace has Hades tier entitlement (unlimited workspaces). */ protected function checkWorkspaceEntitlement(Workspace $workspace): bool { $result = $this->entitlements->can($workspace, 'tier.hades'); return $result->isAllowed(); } /** * Legacy fallback: check user's tier attribute. */ protected function checkUserTier(mixed $scope): bool { if (method_exists($scope, 'getTier')) { return $scope->getTier() === UserTier::HADES; } if (isset($scope->tier)) { $tier = $scope->tier; if (is_string($tier)) { return $tier === UserTier::HADES->value; } return $tier === UserTier::HADES; } return false; } }