Why Developers Never Use State Machines
skorks.com> We Don’t Need One Until We Do
Exactly that. In my career, I had to use a SM only once, but I really don't know how I could avoid it. The final code was a bit difficult to follow (PHP without Goto), but I drew an ASCII-art comment representing the state machine. And, it was perfectly fine. Fortunately, it was a "write only once" kind of business logic function.