Use transition on Order creation
Use state machine callback for order number

Instead of having a full listener
Replace order.pre_create event with finite callbacks
Replace payment pre_state_change event
Replace order.pre_release