I too have worked under this stated in contract, but paid by bank transfer when it suited the MD, when I complained like others before or since about needing my monthly salary in by the 1st to cover essential Direct Debits. I was advised by my MD that that was my responsibility and I should make sure there is enough cash in my account. And he then pointed out that he did not need to pay me to at least the 6th so if fact I should be grateful that mostly I get my pay earlier than that.
I came to the conclusion that I worked for a boss that did not appreciate his staff (his greatest asset) and found another job.
I believe some put this in contracts for 2 reasons,
1. Bad cash flow and might be waiting for cash coming in to pay staff.
1. For the feeling of control it gives them.
These are not mutually exclusive reasons.
My advice is to get a job with a bigger more reputable company, or a boss that has more respect for their staff.
Feel free to show this to your boss. And good luck with your new job search as this situation will not change.