protected function normalizeListifyScope($scope, $doNotResolveBelongsTo = false)
    {
        if ($scope instanceof BelongsTo) {
            if ($doNotResolveBelongsTo) return $scope;

            return $this->getConditionStringFromBelongsTo($scope);
        }

        if ($scope instanceof QueryBuilder) {
            return $this->getConditionStringFromQueryBuilder($scope);
        }

        if (is_callable($scope)) {
            return $this->normalizeListifyScope( $scope($this) );
        }

        // scope can only be a string in this case
        return $scope;
    }