Your question is on a very broad subject so you won't get an actual 100% working answer for it but can chime in with some suggestions.
What you have is a scenario and only you know that scenario because you haven't mentioned the keywords and other info (You shouldn't as we don't want that getting crawled here) therefore everything that I say will be just my ...
Generally google tries to show geo-specific or location specific results.
Google has several ways of determining target locale, for example:
A target locale specified using Search Console's International
Country-code top-level domain names (ccTLDs). These are tied to a
specific country (for example .de for Germany, .cn for China), and
Been a web dev for 23 years and have had all sorts of high- and low-ranking websites. The stuff in common for the high-ranking ones is:
Unique and useful content
Fast load time
Went straight to the point / no bs / nothing annoying