The phones also last a long time, being very durable and getting updates for a quite a while, so you can buy an older refurbished iPhone and save quite a bit of money.
I only just upgraded a year ago from an iPhone 7 I had owned for about 4 years and bought refurbished for under $300 (that still worked fine, I just wanted to start developing mobile apps again and needed something with the newest iOS) to a refurbished iPhone 12 for $250, and it feels plenty modern to me. It still has the latest iOS version on it as well.
I only just upgraded a year ago from an iPhone 7 I had owned for about 4 years and bought refurbished for under $300 (that still worked fine, I just wanted to start developing mobile apps again and needed something with the newest iOS) to a refurbished iPhone 12 for $250, and it feels plenty modern to me. It still has the latest iOS version on it as well.