What role do miners play in determining a fork?


As I understand it, blockchains are governed by smart-contracts. These set out valid transactions. Miners then determine whether the transactions in blocks are valid or not. Changes to smart-contracts may be made according to an ‘articles of association’ style democratic process. If a minority chooses a different validity protocol, how do they achieve a fork? Surely they are simply invalid blocks and would be rejected. If this is not the case, then do miners have a determining role in forking?
This is probably a very basic question, but when searching for it, documents tend to describe what a fork is rather than the process by which it occurs. Thanks for any clarification.