Majority of my customers pay online, but some drop payment round or pay on the day.
I NEVER collect now.
I found the simplest way to get them to pay my way was to charge for anything other. I charge 50p for cheques, its not a lot but its amazing how many moved to online payment when I introduced it.
Why not start charging for collecting? after all its your time and you are giving them an alternative, it then becomes THEIR choice so they cant argue.