I replace the dd statement with Log statement, and it turns out the OverdueLoan event is actually firing, but the listener is not responding, Event service provider code
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
PaymentAdded::class => [
AddTransactionHistory::class,
UpdateLoanStatus::class,
],
UserMadeFirstSavings::class => [
AwardReferralBonus::class,
AwardWelcomeBonus::class
],
LoanIsDue::class => [
SendDueMessage::class,
],
LoanDueDateIsExtended::class => [
AdjustRepaymentPlans::class
],
WalletIsCredited::class => [
AwardReferralBonus::class,
],
OverdueLoan::class => [
HandleLoanOverdue::class
],
];