A button should not be the only publish gate
The interface can show Publish, but the server still has to verify that the draft has the required media, a caption for each selected platform and a valid destination account. Otherwise an old tab or malformed request can bypass the apparent workflow.
The same readiness logic should explain the block to the editor. A disabled action with no reason creates workarounds; a precise message lets the person repair the draft and continue.
