/** * Execute the job. * * @return void */ public function handle(Mailer $mailer) { $teachers = $this->teachers; foreach ($teachers as $teacher) { $message = new TeacherMessage(); $message->sender_id = $this->sender_id; $message->email = $this->email; $message->sms = $this->sms; $message->teacher_id = $teacher->id; $data = ['content' => $this->email]; $attachments = $this->attachments; if ($this->email) { $mailer->send('teachers::emails.message', $data, function ($m) use($teacher, $attachments) { $m->to($teacher->email, $teacher->name)->from(config('teachers.from_email'))->subject("subject"); if (!empty($attachments)) { foreach ($attachments as $a) { $m->attach($a); } } }); $message->email_sent = 1; } if ($this->sms) { $sms = new SmsGateway($this->sms, [$teacher->mobile]); $result = $sms->send(); if ($result->getPushMessageResult()->PushMessageResult == 1) { $message->sms_sent = 1; } } $message->save(); } event(new TeachersMessagesQueueFinished()); }