there are not many physical or online stores available
Here is a database of over 1000 physical and online stores which accept bitcoin:
https://spending-bitcoin.com.
Here is a map of over 15,000 stores physical stores which accept bitcoin:
https://coinmap.org/view.
For major brands like Amazon, Apple, Google, Walmart, etc. then there's giftcards available from
https://www.bitrefill.com.
For any small or independent retailers, then simply ask them to start accepting bitcoin. They want your business after all, and if accepting bitcoin is the way to get it, many will consider it.
If you want to promote Bitcoin then let it be easily accessible, we need more Bitcoin ATMs and physical stores accepting it.
It's not good enough to just say "we need more stores to accept it". Stores aren't going to accept it unless there is demand for it. Go and create demand for it. Ask to pay in bitcoin. Spend it where you can. If stores start seeing their competitors' bitcoin income increasing, they will soon take note.
because people can now pay with their credit cards
Perhaps I don't want my credit card company having a complete profile on me of absolutely everything I've ever bought? That's a privacy nightmare. Perhaps the merchant doesn't want to pay 3-5% of the transaction in credit card fees because it eats the majority of their profits?
they have to buy bitcoin from intermediaries and pay a lot of fee.
Only if you are using centralized exchanges which over charge you. Trade peer to peer for a small or minimal fee, and protect your privacy and security at the same time.