domain ?? '') !== 'zenova') { return false; } return count(array_intersect(self::roleIds($user->roles ?? []), self::ROLE_IDS)) > 0; } private static function roleIds($roles): array { if (is_string($roles)) { $decoded = json_decode($roles, true); $roles = is_array($decoded) ? $decoded : []; } if (!is_array($roles)) { return []; } $ids = []; foreach ($roles as $role) { if (is_scalar($role) && (string) $role !== '') { $ids[] = (string) $role; } } return $ids; } }