This should go in event listener.
I think it could even be already handled by `OrderStateResolver` listening at the `pre_ship` event, right? (with low priority so that it's executed after your `ShippingListener::updateShipmentStatesShipped` which listens at the same event.