def fire(object, *args)
      machine.reset(object)

      if transition = transition_for(object)
        transition.perform(*args)
      else
        on_failure(object, *args)
        false
      end
    end
def fire(object, *args)
      machine.reset(object)

      if transition = transition_for(object)
        transition.perform(*args)
      else
        on_failure(object, *args)
        false
      end
    end
Attempts to perform the next available transition on the given object.
 If no transitions can be made, then this will return false, otherwise
 true.

 Any additional arguments are passed to the StateMachines::Transition#perform
 instance method.