Always flush between pre and post payment
Add paymentState setter
Listen to PaymentState event

and dispatch order_pay, from which shipment are being prepared