class ActiveSupport::TimeWithZone

def method_missing(...)

TimeWithZone with the existing +time_zone+.
Send the missing method to +time+ instance, and wrap result in a new
def method_missing(...)
  wrap_with_time_zone time.__send__(...)
rescue NoMethodError => e
  raise e, e.message.sub(time.inspect, inspect).sub("Time", "ActiveSupport::TimeWithZone"), e.backtrace
end