@winzou In fact we already have `OrderStateListener` and `OrderProcessing\StateResolver` classes already. 

I just think it would be nicer to use Finite's event instead of listening to so many checkout events like below:

```xml
<service id="sylius.listener.order_state" class="%sylius.listener.order_state.class%">
    <argument type="service" id="sylius.order_processing.state_resolver" />
    <tag name="kernel.event_listener" event="sylius.checkout.finalize.pre_complete" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.checkout.purchase.pre_complete" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.order.pre_pay" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.order.pre_ship" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.order.pre_cancel" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.order.pre_return" method="resolveOrderStates" priority="-100" />
    <tag name="kernel.event_listener" event="sylius.order.pre_release" method="resolveOrderStates" priority="-100" />
</service>
```