```ruby
class ErrorDumper
  include Callee

  UNDEFINED_EXCEPTION = ''.freeze

  option :exception, optional: true, default: -> { UNDEFINED_EXCEPTION }

  option :file_name, optional: true, default: -> { location.try(:path).to_s }
  option :label, optional: true, default: -> { location.try(:label).to_s }
  option :line_number, optional: true, default: -> { location.try(:lineno) }
  option :occured_at, optional: true, default: -> { DateTime.now }
  option :target, optional: true, default: -> { nil }
  option :context, optional: true, default: -> { {} }

  option(
    :message,
    optional: true,
    default: -> { exception.try(:message) || exception.to_s }
  )

  def call
    Error.create!(
      backtrace: backtrace,
      context: context,
      exception: exception_name,
      file_name: file_name,
      label: label,
      line_number: line_number,
      message: message,
      occured_at: occured_at,
      status: ErrorStatus.pending,
      target: target
    )
  end

  def location
    exception.try(:locations).try(:first)
  end

  def backtrace
    exception.try(:backtrace) || []
  end

  def exception_name
    return exception.try(:class).try(:name) if exception.is_a?(Exception)
    exception.to_s
  end
end
```

Make ErrorDumper to notify Honeybadger
user
```ruby
class ErrorDumper
  include Callee

  UNDEFINED_EXCEPTION = ''.freeze

  option :exception, optional: true, default: -> { UNDEFINED_EXCEPTION }

  option :file_name, optional: true, default: -> { location.try(:path).to_s }
  option :label, optional: true, default: -> { location.try(:label).to_s }
  option :line_number, optional: true, default: -> { location.try(:lineno) }
  option :occured_at, optional: true, default: -> { DateTime.now }
  option :target, optional: true, default: -> { nil }
  option :context, optional: true, default: -> { {} }

  option(
    :message,
    optional: true,
    default: -> { exception.try(:message) || exception.to_s }
  )

  def call
    persist_error
    notify_honeybadger
  end

  def persist_error
    Error.create!(
      backtrace: backtrace,
      context: context,
      exception: exception_name,
      file_name: file_name,
      label: label,
      line_number: line_number,
      message: message,
      occured_at: occured_at,
      status: ErrorStatus.pending,
      target: target
    )
  end

  def notify_honeybadger
    Honeybadger.notify(exception, error_message: message)
  end

  def location
    exception.try(:locations).try(:first)
  end

  def backtrace
    exception.try(:backtrace) || []
  end

  def exception_name
    return exception.try(:class).try(:name) if exception.is_a?(Exception)
    exception.to_s
  end
end
```
assistant