Outside of the obvious cases you cite, firing should be the end of a process, not an isolated action. As soon as you start having real doubts about the performance or fitness of an employee, have at least two meetings with them to discuss the issues and create improvement plans and actions, before resorting to firing them. Those meetings are hard to approach correctly, but not as hard as actually firing the person, so please do not wait to have them, and make the most out of them. They will not just benefit the employee (clarifying your expectations of them), but often also yourself (understanding your own mistakes as a manager).