I've always upgraded when needed, because the old machine is getting too slow (which is highly subjective).
For a long time that resulted in a 3 year upgrade Cycle:
1994: Mac Performa 630CD*
1997: PowerMac 7500*
2000: PowerBook G3 FW (Pismo)
2003: iBook G4
2006: MacBook
2009: Mac mini server*
Then in 2010 that ended. First I got the original iPad (from the UK, since they didn't release it in Norway at first), with an idea to supplement and maybe replace the MacBook, but later that year the MacBook died and I didn't think the iPad was a proper laptop replacement (still don't), so I got an 11" MacBook Air, which is still my main Mac.
I've had a few work-Macs after this, the 12" rMB, another 11" MacBook Air, and the late 2013 rMBP I'm typing this on.
Now that 11" Air is way overdue for an upgrade, but I just cannot decide between the slightly anemic/overpriced 2018 MacBook Air or the just barely more expensive 2019 13" MBP, so I'm squeezing just a bit more out of the poor old Air (and has taken my work Mac home for the Summer vacation).
* Not laptops, I know...