There is no singular solution to this problem, as all of them have pros and cons to them. Salary cap and players cry foul and dodgers, Yankees etc lose their edge. Plus it would likely come with players wanting pay day much earlier - like what NFL and NHl did - earlier free agency periods.
A floor only does so much. A soft cap is in place with the luxury cap.
for a fan like me -just allowing your team the chance to lock up a player or two long term is all I can ask for - and designate “franchise player” tags or nba style maximum of “max contracts” could help so one team can’t sign all players to Shohei deals.
but a lot comes from forcing owners to pay, and allowing more of the mlb revenue to flow to all teams. Yes the dodgers and Yankees are the draws of the league but those owners have to realize with brewers, twins, rays, Indians you don’t have as much of interest in baseball as a whole. It’s not the New York Baseball League or California Baseball League. Plus if teams bow out, players are hurt with contraction, and they probably want expansion, so that would open the door to more shared revenue from a league side, and then force owners to pay a certain amount and incentive teams to lock of some of their stars. Baseball was the sport in the 1960s- through 1990s and my favorite era was the 1980s. Back then any team realistically could win, and you knew the players and expected them to be there for years. That benefits everyone so a lot of compromises and some incentives to all parties could happen. Sadly a band aid will be agreed on and kick the can down the road again.