ActiveRecord aware workflow (state machine) module