The problem

Let's take an example: you analyze requirements to determine that your entity should support the following state transitions:

Figure 1. State transition diagram for the example cookbook code

Moreover, each of these transitions has its unique validation, data manipulation and notification requirements.