Three clients, one source of truth
When each app tracks status locally, the three disagree the moment a network call fails. Keeping status transitions server-side and having clients render what the server reports removed a whole class of "the restaurant says preparing, the customer says placed" bugs.