Thanks for providing the domain.
I can confirm the problem: I placed a test COD order on your site (clearly marked as such with a note to cancel the order) with a Gmail address, and I never received the order confirmation email. I also tried to reset my password, but got no email either. I then changed my email address to one with a custom domain, and I received the password reset email instantly.
If i’m not wrong, everything is already authenticated.
The password reset email came from an @gmail.com
address, not your website domain. So it seems you’re using your personal Gmail address as an SMTP server to send emails from your website. As such, the authentication of your own domain name has no effect on the deliverability of emails being sent by your website.
So the mail is being SENT by Gmail, and it’s not being RECEIVED by Gmail.
I can’t say why the mail isn’t getting delivered to @gmail.com users, but it’s important to understand that your domain name, hosting server and WordPress website have nothing to do with it: it’s all up to Google/Gmail.
And if email is important to your business, I’ll highly recommend you use a professional transactional email service provider, and not a personal Gmail.com account to SEND emails from your website. Nearly all of these providers have generous free introductory plans. See: https://metabox.io/free-transactional-email-services/