public function sendReminder(array $data, \DateTime $date, $occasion) { $recipients = $this->db->get('recipients'); $emailer = new Emailer(); $subject = ucfirst($data['occasion']) . ' Reminder'; $templateName = $occasion === 'week' ? 'weekBeforeReminder' : 'todayReminder'; $gmTemplateName = $occasion === 'week' ? 'gmWeekReminder' : 'gmTodayReminder'; $data['date'] = $data['hebrew'] ? new HebrewDate($date) : $date->format('M d, Y'); $data['hebrew'] = $data['hebrew'] ? 'hebrew' : 'english'; try { $emailer->prepare($templateName, $data); foreach ($recipients as $recipient) { $emailer->send($recipient['email'], $subject); } } catch (Exception $e) { echo $e->getMessage(); } try { $this->gm->prepareMessage($gmTemplateName)->sendMessage($data); } catch (Exception $e) { echo $e->getMessage(); } }