```ruby
require 'active_support/concern'

module ActiveRelationTracer
  extend ActiveSupport::Concern

  included do
    class_eval do
      name = :where
      original_method = instance_method(name)
      define_method(name) do |*args, &block|
        trace = "Calling '#{name}' with '#{args.inspect}'"
        STDERR.puts trace
        original_method.bind(self).call *args, &block
      end
    end

    class_eval do
      name = :order
      original_method = instance_method(name)
      define_method(name) do |*args, &block|
        trace = "Calling '#{name}' with '#{args.inspect}'"
        STDERR.puts trace
        original_method.bind(self).call *args, &block
      end
    end

    class_eval do
      name = :limit
      original_method = instance_method(name)
      define_method(name) do |*args, &block|
        trace = "Calling '#{name}' with '#{args.inspect}'"
        STDERR.puts trace
        original_method.bind(self).call *args, &block
      end
    end

  end

end
```

Refactor with wrap_method module method
user
```ruby
require 'active_support/concern'

module ActiveRelationTracer
  extend ActiveSupport::Concern

  included do
    [:where, :order, :limit].each do |method|
      ActiveRelationTracer.wrap_method(self, method)
    end
  end

  def self.wrap_method(klass, name)
    klass.class_eval do
      original_method = instance_method(name) # create unbound method with original
      define_method(name) do |*args, &block|
        trace = "Calling '#{name}' with '#{args.inspect}'"
        STDERR.puts trace
        original_method.bind(self).call *args, &block # bind to self and call original
      end
    end
  end

end
```
assistant