loadMissing('store'); $user = $store->user; if (! $user) { return; } $this->send($user, 'order_received', new WooOrderReceivedNotification($order, $store)); } public function storeConnected(WooStore $store): void { $user = $store->user; if (! $user) { return; } $this->send($user, 'store_connected', new WooStoreConnectedNotification($store)); } public function proExpiring(ProSubscription $subscription, int $daysRemaining): void { $user = $subscription->user; if (! $user) { return; } $this->send($user, 'pro_expiring', new WooProExpiringNotification($subscription, $daysRemaining)); } public function proPastDue(ProSubscription $subscription): void { $user = $subscription->user; if (! $user) { return; } $this->send($user, 'pro_past_due', new WooProPastDueNotification($subscription)); } private function send(User $user, string $event, Notification $notification): void { $channels = (array) config("notifications.woo_events.{$event}", ['mail' => true, 'database' => true]); if (! ($channels['mail'] ?? false) && ! ($channels['database'] ?? false)) { return; } $user->notify($notification); } }