sender === null) { // Sender factory can throw an exception (if no 'smsProvider' in config). // Better it be thrown when sending rather than when instantiating // constructor dependencies. $this->sender = $this->injectableFactory->createResolved(Sender::class); } return $this->sender; } public function send(SmsEntity $sms): void { $systemFromNumber = $this->config->get('outboundSmsFromNumber'); if ($sms->getFromNumber() === null && $systemFromNumber) { $sms->setFromNumber($systemFromNumber); } $this->getSender()->send($sms); $sms->setAsSent(); } }