It all depends on your budget.
If money isn't an issue for you and you are some kind of a tech geek, I'd recommend the
Samsung Galaxy S9 or
Note 8.
If you want more of a vanilla Android experience, the
Pixel 2 would be good.
If you aren't an Android fan or you don't want to mess with a lot of controls in the phone, the
iPhone 8 or
iPhone X would be the best choice for you.
OnePlus 6 is also a pretty good phone and its quite cheaper than the ones I mentioned earlier but the hardware quality is little bit low compared to Samsung and iPhone.
All these phones are good specs wise and the camera quality is exceptionally good as well.
Happy phone hunting!