state_machine with cancan integration