class Dry::Monitor::Notifications

def instrument(event_id, payload = EMPTY_HASH, &block)

def instrument(event_id, payload = EMPTY_HASH, &block)
  result, time = @clock.measure(&block) if block_given?
  process(event_id, payload) do |event, listener|
    if time
      listener.(event.payload(payload.merge(time: time)))
    else
      listener.(event)
    end
  end
  result
end