A loan moved from reviewed to approved, but both the review screen and the
disbursement handler were allowed to make the transition. Each path checked a
different set of conditions.
The visible state was correct most of the time. The problem appeared when one path approved the loan while the other still expected a review. Notifications were sent twice, and a disbursement could start without the complete approval record.
We moved the transition behind one operation. It checks the current state, records who approved it and writes the decision in the same transaction.
The important change was not the name of the status. It was giving one part of the system ownership of the move into that status. A new transition now starts by answering who is allowed to perform it and what must be written with it.