I spend roughly an hour and a half Monday through Friday commuting to and from work and my laptop is tethered to my phone probably 90% of the time I'm on the train. I've never had issues tethering from my MacBook Air or iPad Mini but I've had consistent issues tethering 2 different MacBook Pros to the iPhone. I would turn on personal hotspot on my iPhone but when trying to connect to it via Wi-Fi from my MacBook Pro, it would almost never find the hotspot. And without finding the hotspot, my laptop would refuse to connect to the iPhone. This had caused me to tether via Bluetooth, which works, but it is terribly slow.
Thankfully I've come up with a solution that seems to have resolved the tethering issue. What I do is this: I turn on my personal hotspot on the iPhone > I open up my iPad Mini and connect to the hotspot (I then put the iPad Mini away) > I open up my MacBook Pro and it's able to find the hotspot and connect via Wi-Fi. This has worked for me every time and it's been at least a month since I've used this method. I don't know what explains this and it's a bit annoying that I have to go through the extra step of connecting my iPad to my phone, but hey, at least tethering works now and it's WAY faster than tethering via Bluetooth.