You're putting responsibility on individuals to enforce ethical behavior. This has two problems:
1. People don't have enough motivation, knowledge, and free time to find and keep track of which companies behave ethically. Also, people are generally selfish and will buy from unethical companies if it saves them money or time. (I did this yesterday.)
2. Liars deceive large groups of people and escape punishment or cause wrong punishment of a competitor.
In a modern society, we need people with specialized skills to do the work of holding companies accountable. We should train them, pay them, and hold them accountable for how they do their jobs. USA has a law forbidding US people from paying bribes to anyone anywhere in the world. The FBI enforces this law.
How about adding a law forbidding US people from discriminating in business based on political or religious affiliation? I think we don't have this because a lot of US people wish to run their businesses with bigotry. See the gay wedding cake controversy [0].
[0] https://www.bbc.com/news/world-us-canada-44361162