The naming convention decides who is allowed to fail, which is why it is worth more than a style rule.
// events: past tense, many listeners, cannot be vetoed
final class OrderPlaced {}
final class PaymentCaptured {}
// commands: imperative, one handler, may be rejected
final class PlaceOrder {}
final class CapturePayment {}
// the smell: an 'event' a listener can veto by throwing.
// that is a command wearing the wrong name.
A handler for OrderPlaced that throws does not un-place the order, so it must retry or record its failure; a handler for PlaceOrder that throws means the order was not placed. Conflating them produces a system where an email failure rolls back a sale, which is how the distinction is usually discovered.