The aguinaldo is the equivalent of 2 weeks pay for an employee who has worked all 12 months for you and it is to be paid before December 20. It is not a bonus.
If an employee is terminated, laid off, whatever, they are to be paid the aguinaldo for the time that they worked. We just did this for a maid who moved to Tijuana, and the new one will receive hers for the time she has worked this year.
When an employee is terminated, laid off, whatever, they almost always have to be paid off. https://mexlaw.com/considerations-regarding-hiring-and-firing-employees-in-mexico/
This is not to say that people are doing what they are legally required to do, but that is true in any country. In our area, it seems as though people are paying what they are supposed to pay.