A contract can change an at will employment status. this may mean an individual employment contract or one that is negotiated as part of a union. Such contracts provide prtections and often include how a person may be terminated with write ups and other measures before the dismissal occurs. Without a contract, you may be terminated or denied promotion for any reason or no reason except those protected by law.
The statutes or the law, only protects against employment decisions that are discriminatory in nature. You can be sdiscriminated against for any reason except those delineated by statute. In other words, you can be fired or denied hiring because they do not like how you dress or how you part your hair. To be in violation of laws for discrimination, the employer must treat you differently than others based on a suspect class as defined by statutes. They may treat you differently for other reasons not based on the suspect class. For example, they may treat you differently because they do not like you, how you dress or how you part your hair. None of those things involve a suspect class. Suspect classes under state and federal statutes differ slightly, but generally include things such as race, creed, color, religion, sex, age, disability, whistleblower etc..
What do I do?
If you were not treated differently based on suspect classification set out in law, you may file a complaint with the EEOC or Department of Human Rights in your state.