Sorting pages by "published on" date in the panel

Okay! I started off with a page model, site/models/news.php, which I based off of this post.

<?php
use Kirby\Cms\Page;

class NewsPage extends Page {

    public static function create(array $props): Page
        {
            $page = new Page($props);
            $date = $page->published()->toDate('Ymd');

            $props['slug'] = $props['slug'] . '-' . $date;
            
            
            return parent::create($props);
        }
}

However, this appends the date when the page status is set from “Draft” to “Published” (e.g., “Today”), rather than the custom published on date that I’m retrieving in the news.yml via num: '{{ page.published.toDate("Ymd") }}'. Do you know how I can set it to append the correct date?

Also, could you say more about why I would need to use a route to return the correct page? Wouldn’t the URL with the date appended already be the correct page?