Add PurchaseStep events

And make OrderStateResolver listen to it