Situation when the same page has different Statuses: Canonical and Canonicalised when crawled from the different countries

I need to show different content to the visitors from USA. I am using the following code in .htaccess to capture CloudFlare Geolocation data and append "/?country=US" to my URL once visitor came from USA:

SetEnvIf CF-IPCountry "(.*)$ " Country=$ 1
RewriteCond %{ENV:Country} ^(US)$
RewriteRule ^(.*)$ $ 1?country=%{ENV:Country} [R,L,QSA]

So basically all Americans seeing https://example.com/?country=US while rest of the world seeing: https://example.com/

Everything works as planned, the only concern I have …

US based bots (Google Search Console) now seeing this page as following:

  • https://example.com/ – StatusCode: 302, Status: Found, Indexability: Non-Indexable, Indexability Status: Redirected
  • https://example.com/?country=US – StatusCode: 200, Status: OK, Indexability: Non-Indexable, Indexability Status: Canonicalised

For the rest of the world:

  • https://example.com/ – StatusCode: 200, Status: OK, Indexability: Indexable, Indexability Status: Canonical

As you may see from above "https://example.com/" now has TWO different Responses when crawled in the US and outside of US.

NOW THE QUESTION …

  • Do you see any danger from SEO perspective? Is there any way to avoid this situation when the same page (https://example.com/) has TWO different Statuses: Canonical and Canonicalised when crawled from the different countries?
  • Will you recommend a different approach to this problem, maybe by avoiding the use of a querystring?

Thanks a lot! OZ