Event.Buff.Remove(unit, buffs, reason)

reason: The reason the buff was removed, string values: "expired", "spent", "purged" or "cancelled".

> "expired" indicating the buff reached the end of its duration, and was removed.
> "spent" usually absorb buffs, or stacked procs, used before buff expiration.
> "purged" indicates the buff was removed by an enemy-other purge.
> "cancelled" indicates the buff was removed by the player.

It's also possible to make 'reason' a table such as the following:

{expired = true, purged = unit id who purged}