I find the more reliable way to do this using GSM, 3G, 4G, etc is to use a mobile phone as a hotspot and connect your device via WIFI (this often means using an ESP device like the ESP32 or the ESP8266).
FWIW, I have tested LoRa and NB-IoT (building a custom tracker) in my area. I found that LoRa and NB-IoT was "spotty" at best. Both were like "ham radio experiments" and were fun to test, but did not provide a reliable connection. If you want to "play with LoRa" that is a different story, but if you want the most reliable service, then using a robust carrier's 3/4/5G network is really the better option.
Eventually, I moved to ESP devices with WIFI and just let them connect to my mobile as a hotspot (for example, in my car or on my motorcycle out in the country side).
The reason for this reliability (at least in my area) is that the big telcos have invested a huge amount of money in 4G since nearly everyone has a mobile phone and uses 4G. Very few people user LoRa or NB-IoT and the service is so "cheap" (NB-IoT and LoRa) at a "hobbyist price", that of course these services will not be a robust as 4/5G.
Hence, if you want a reliable service (at least in my area) the #1 was to go is to use a mobile hotspot connected to the very reliable GSM/3/4G services (soon to be 5G) and use ESP32 modules. I am building a new GPS tracker using ESP32, waiting on some new GPS modules from AliExpress.
In addition, I have tested (extensively) ESP32 v ESP8266 and due to some firmware changes for the ESP32, it is more reliable than the 8266 (which makes sense, because the 32 is an upgrade over the 8266); however, the 8266 works OK.
The different is that with the ESP32 there is a better reset function available and so when your connection is lost, sometimes these ESP devices will not reconnect robustly (the same is also true for LoRa and NB-IoT btw).
One way around this issue is to detect when the connection is lost (with a timer) and then reboot the device in software. The ESP32 has better hooks to do this compared to the ESP8266. I tested this extensively for nearly two weeks in different failure / recovery scenarios.
Hope this helps.