In a short-distance case, I think you should reimburse them later because once you start giving in advance, they will give excuses later on like "I did not have money" or so. However, if someone is traveling a distance, then the company should provide money in advance as the employee is salary dependent and may not have extra money to spend on the company.
In a local case, you can reimburse them daily or every Saturday so employees will feel flexible to spend from their pocket. If you want to track, you should have or acquire knowledge of distance and money. For example, if you are sending one employee to a specific place, then find out the ways to travel, the travel options available, which travel method will cost less time and money, and direct them accordingly. I used to cross-check with my office peons regarding these options because they were the most familiar with local travel.