Yes. Or maybe better to trigger `sylius.inventory_unit.pre_state_change` and pass the state in event argument.
And there should be a check to avoid updating inventory state of an item already shipped (but not returned yet).