/** * @param string $email * @param string|NULL $listName */ public function unsubscribe($email, $listName = NULL) { $subscriber = Subscriber::where('email', $email)->first(); if (is_null($subscriber)) { return; } foreach ($subscriber->lists as $list) { if ($list->name == $listName || $listName === NULL) { $list->subscribers()->detach($subscriber); } } if (is_null($listName)) { $subscriber->delete(); } }