A simple reusable state-machine utility helper to handle complex entity state changes in one central place you can easily extend this to add more features to your state-machine (e.g. state-machine guards with respect to other entities or states) by making use of default interface methods or something like that