That is an interesting problem. The easiest way is to just disable or remove the ability and replace it with a "dummy" ability. That dummy ability will have the same mana, cooldown, description, etc. Give the unit enough mana to cast the spell, and order the spell to be cast, start a short timer, and give the unit his mana back. Start a timer for the cooldown of the spell, and when the timer expires, replace the dummy ability with the real ability.
However, the big problem with this is that this will trigger the unit's cast animation/cast backswing. Softmints proposed a pretty clever solution a while back:
http://www.hiveworkshop.com/forums/2075311-post5.html
Again, this is a really specific method and a bit convoluted, but cooldowns are actually quite hard to manipulate!
A third solution would be to use the first method, but make the dummy ability have the order ID of one of the abilities that does not interrupt order: (e.g. Berserk, and some activated abilities)
(guide). Give the unit a similar ability of the same order ID and when that one is ordered, it'll trigger the cooldown of spells with the same base order ID.
Overall, I apologize. I haven't given much information beyond some untested ideas--perhaps someone can give you a test map that illustrates these solutions (or give an even better solution!). If you want to run your own tests and experiments, I recommend that you first acquaint yourself with the "Channel" ability:
http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=14972
It is the only spell that allows you to choose the base order ID. You can try fiddling and running experiments with spells of the same order ID and see if you get a good solution.