def with(opts)
      new_options =
        if opts.key?(:meta)
          opts.merge(meta: meta.merge(opts[:meta]))
        else
          opts
        end

      new(dataset, options.merge(new_options))
    end
def with(opts)
      new_options =
        if opts.key?(:meta)
          opts.merge(meta: meta.merge(opts[:meta]))
        else
          opts
        end

      new(dataset, options.merge(new_options))
    end
Returns a new instance with the same dataset but new options

 @example
   users.with(output_schema: -> tuple { .. })

 @param [Hash] opts New options

 @return [Relation]

 @api public