Think about how WordPress handles posts set to publish later.
When you schedule a post, WordPress sets its status to 'future'. This tells the system to publish it automatically at the set time.
Consider what happens when you override the schedule by publishing early.
Publishing a scheduled post early changes its status to 'publish' immediately, making it visible on the site.
Remember how WordPress treats the 'post_status' when the 'post_date' is in the future.
Setting 'post_status' to 'publish' with a future 'post_date' schedules the post. WordPress automatically changes the status to 'future'.
Think about what triggers scheduled posts to publish automatically.
WordPress uses a cron system to check and publish scheduled posts. If cron is disabled or not running, scheduled posts won't publish.
Think about the natural flow of statuses from draft to scheduled to published.
A post starts as 'draft', then when scheduled, WordPress sets it to 'future'. If published early, status changes to 'publish'.