The Feds can, and routinely do, compel states to change their laws. The cudgel they use is witholding Federal highway money.
They did it to impose the 55 mph speed limit, raise the drinking age to 21 in all states and to lower the presumptive limit for DUI to .08 percent BAC.
So long as the states are dependent on Federal money, the Feds call the tune.
True, but there is no way the state legislatures will touch this one. Farmers have a bad habit of voting.