We've recently migrated from Heroku Review Apps to a custom preview environment in Google Cloud for 2 reasons: 
Heroku Review Apps weren't very flexible We wanted a customisable preview environment flow The move allowed us to fully customise our application deployment while working on a git branch, and we wanted to see how it would behave in production.How have we achieved this?  
Our application is deployed to a Google Cloud Kubernetes cluster using a custom Helm chart and, thanks to Github actions, we have control over creating, updating and deleting the app. It also allows us to scale resources if we need more power, but this is seldom needed.