Flashes should be set from controller (action from user, requesting feedback), not from listener doing real thing (that could be done in backend, in CLI, etc. => no flash needed).
This would also simplify a lot the dependencies of this service.
Finaly, this is what you've already done for ShipmentController =)