Шаблон проектирования, который приходит на ум, является «правилом»; -)
Или, если хотите, шаблон команды
Другими словами, для подобных ситуаций я бы создал таблицу базы данных, в которой перечислены состояния и допустимые переходы, и связывал действие с каждым переходом (используя отражение)
Я считаю, что это полезно для обработки случаев, когда переходное действие является более сложным, чем просто обновление соответствующих статусов.
Например, в одной системе у нас был рабочий процесс, в котором документ запроса должен был проходить через несколько станций проверки комитетов, каждая из которых могла отклонить или передать документ на следующую стадию, плюс пользовательская обработка побочных эффектов. Организация комитета, структуры обработки и действия по обработке существенно изменились три раза во время разработки и еще пять раз за первый год развертывания.