Upgrade path from Concrete 8.4.4

I am looking at upgrading a website built with Concrete 8.4.4. I would like to upgrade to the latest 9.x version but it looks like this may not be possible due to constraints with PHP version supported by different Concrete versions along the way.

Does this mean I need to upgrade in stages by carefully experimenting between the PHP and Concrete combination?

Would it be safer to first upgrade to the most recent version 8.x before upgrading to 9.x or can I directly jump to 9.x from 8.4.4?

I would generally go to 8.5.10 then 8.5.12.

After that I guess try going up to 9.1.3 but if the site has plugins then make sure they will be compatible.

Adding to @TMDesigns notes, take a backup of database and files before starting each update.

I would implement this by creating new directories for each update to contain the respective core versions:

/concrete (your current 8.4.4 core)

Then use a terminal window to rename the directories and use the concrete CLI update command.

/concrete (now 8.5.10)

$ concrete/bin/concrete5 c5:update

Once package compatibility confirmed, do similar for 9.1.3.