def resolve!(name, *args, &block)
      if resolution = resolve(name, *args, &block)
        return resolution
      end

      if compatible_arguments?(*args, &block)
        raise NotFoundError.new(@table._scope.model_name, name, @strategies)
      end

      return nil
    end
def resolve!(name, *args, &block)
      if resolution = resolve(name, *args, &block)
        return resolution
      end

      if compatible_arguments?(*args, &block)
        raise NotFoundError.new(@table._scope.model_name, name, @strategies)
      end

      return nil
    end
Try to resolve the method_missing. If we fail to resolve, there are
 two outcomes:

 If any of the configured strategies accept argument signature provided,
 raise an error. This means we failed to resolve the name. (ex. invalid
 column name)

 Otherwise, a nil return valid indicates that argument signature was not
 valid for any of the configured strategies. This case should be treated
 as a NoMethodError.