/** * Banish an Ad. * * @param Ad $ad * * @return Reponse */ protected function banish(Ad $ad, $oldStatus) { $reasons = []; $existingReasons = Request::get('reasons'); $newReasons = Request::get('newReasons'); $existingReasons = is_array($existingReasons) ? $existingReasons : []; if (is_array($newReasons)) { foreach ($newReasons as $reason) { $reasons[] = Reason::firstOrCreate($reason)->id; } } $reasons = array_merge($reasons, $existingReasons); $ad->reasons()->sync($reasons); if ($oldStatus != 'banned') { event(new AdWasBanned($ad, $this->admin)); } }