path(), '/')); } public static function fromPath(string $path): self { $normalizedPath = '/'.ltrim($path, '/'); if (preg_match('#^/admin/operations/[^/]+$#', $normalizedPath) === 1) { return self::CanonicalWorkspaceRecordViewer; } if (preg_match('#^/admin/onboarding(?:/[^/]+)?$#', $normalizedPath) === 1) { return self::OnboardingWorkflow; } if ( preg_match('#^/admin/t/[^/]+(?:/|$)#', $normalizedPath) === 1 || preg_match('#^/admin/tenants/[^/]+(?:/|$)#', $normalizedPath) === 1 ) { return self::TenantBound; } return self::WorkspaceScoped; } public function lane(): TenantInteractionLane { return TenantInteractionLane::fromPageCategory($this); } }