It's pretty sad but we basically are at the point where we should be hoping which fights are not cancelled as opposed to hoping no fights are cancelled. Every event something falls through these days.
Agreed. There are a lot of ways to fix this.
Firstly, I believe that UFC fighters should be paid more, as you said.
HOWEVER, they should also be required to purchase insurance on their fight on the UFCs behalf, with part of their salary. In the event that they pull out of a fight, the insurance would pay for their salary and the UFC's losses, and possibly their opponents lost salary, depending on pre-defined formulas and criteria (i.e. the UFCs ability to put on an alternative opponent fight).
Fighters that constantly pull out of fights would have higher and higher insurance costs, and thus would have to decide whether it is worth it.
Secondly, the UFC should make stricter weight policies: If you miss weight, you legally must accept a fight at a higher weight class for your next fight, or be in breach of contract. Darren Till should be legally obligated to fight at Middleweight right now, for one "penalty" fight.
Third, the UFC should make clearer alternative-fight clauses in their contracts, with financial penalties for fighters declining last-minute replacements (in addition to zero show money). They should then pay "backup fighters" to train & make weight, in case they are needed. To make this financially viable, they should try to run as many fights in the same division as possible on a given card.
Fourth, the UFC should institute mandatory hydration tests AND publically reported weights when fighters walk into the Octagon. They should then increase penalties for failing weigh-ins or hydration tests to 50% of your purse. If you decline to fight, you are legally obligated to pay your opponent's show money and get zero of your own.
Basically it should be so crippling for fighters to fail to make weight or decline fights, that they literally couldn't think of doing it.