You must use `ShippingProcessor` to update shipment state.
And see, here you forgot to update unit states :D