Index: flexoentity/flexo_entity.py
===================================================================
--- flexoentity/flexo_entity.py	(revision 3bad43e1debc4438c1a27ee0c5d531907aba94ed)
+++ flexoentity/flexo_entity.py	(revision a3227e7598822ec477389a3e28be46ca64438b89)
@@ -307,5 +307,5 @@
     def publish(self):
         """
-    Move     from APPROVED or APPROVED_AND_SIGNED to PUBLISHED.
+        Move from APPROVED or APPROVED_AND_SIGNED to PUBLISHED.
         
         Uses allowed_transitions() to verify legality,
@@ -375,2 +375,22 @@
             case _:
                 return []
+
+    def apply_state_change(self, new_state):
+        """
+        High-level dispatcher used by GUI actions.
+        Safely applies the requested state transition by invoking
+        the corresponding FlexoEntity method if available.
+        """
+
+        if self.state == new_state:
+            return
+        if new_state == EntityState.APPROVED:
+            self.approve()
+        elif new_state == EntityState.SIGNED:
+            self.sign()
+        elif new_state == EntityState.PUBLISHED:
+            self.publish()
+        elif new_state == EntityState.OBSOLETE:
+            self.obsolete()
+        else:
+            raise RuntimeError(f"No handler for state transition to {new_state.name}")
