It seems that if the conditional requirement for a state transition is false, the error message for fire_events! is misleading.
pry(main)> acc.fire_events!(:set_non_paying)
StateMachine::InvalidParallelTransition: Cannot run events in parallel: set_non_paying
pry(main)> z.set_non_paying!
StateMachine::InvalidTransition: Cannot transition status via :set_non_paying from :trial (Reason(s): Status cannot transition via "set non paying")
It seems that if the conditional requirement for a state transition is false, the error message for fire_events! is misleading.
pry(main)> acc.fire_events!(:set_non_paying) StateMachine::InvalidParallelTransition: Cannot run events in parallel: set_non_paying
pry(main)> z.set_non_paying! StateMachine::InvalidTransition: Cannot transition status via :set_non_paying from :trial (Reason(s): Status cannot transition via "set non paying")