class AASM::InvalidTransition

def initialize(object, event_name, state_machine_name, failures = [])

def initialize(object, event_name, state_machine_name, failures = [])
  @object, @event_name, @originating_state, @failures = object, event_name, object.aasm(state_machine_name).current_state, failures
  @state_machine_name = state_machine_name
  super("Event '#{event_name}' cannot transition from '#{originating_state}'.#{reasoning}")
end

def reasoning

def reasoning
  " Failed callback(s): #{failures}." unless failures.empty?
end