This is a perennial problem, and the government gets away with it in part because it uses those other recipients as a human shield. It hides behind the worthy while reward its donors and cronies, and the media plays the game and lets them get away with it. They shouldn't. When the government introduced a corrupt and Muldoonist fast-track law, the media published stories about exactly how much fast-track applicants had donated, and what they were getting for their money. They should do the same with honours lists. And if the rich donors cry foul, well, maybe they shouldn't behave in a manner which looks so nakedly corrupt.
Long term, it is clear that the system needs to either be completely destroyed, or taken out of the grubby hands of politicians. Having honours recommended by an independent board, according to statutory criteria, with strict rules against rewarding anyone who has ever worked in government or politics (no honours for cronies and time-servers! No retirement perks!), or ever donated to a political party (no corruption!), would be a good start. But why would the politicians ever vote for that?