Force record ordering reset

Hi. In the case of regular models and the sortable trait, I have managed to hook to the beforeCreate event to force the new record to be placed on top (first) instead of at the bottom as default, using this:

public function beforeCreate()
    {
        $this->sort_order = 0;
    }

And it “works”. BUT if you create more than one record without making any reordering, the newest record is placed AFTER the previous one, because logically both have sort_oder = 0. If you reorder any record, I can see that the whole values of sort_order are somehow recalculated (“reset?”). So I’d like to know if I can manually call that “recaculation” process in the event I’m hooking to (or maybe that in the afterCreate). That would for sure solve my problem. But I really don’t know how to call that process.

Can somebody help me with this?