public function queue($view, array $data = [], $callback = null, ?string $queue = null): ReceiptContract
    {
        $mailer = $this->getMailer();

        if ($view instanceof MailableContract) {
            $this->updateFromOnMailable($view)->queue($this->queue);
        } else {
            $callback = $this->buildQueueCallable($callback);
            $with = \compact('view', 'data', 'callback');

            $this->queue->push('orchestra.mail@handleQueuedMessage', $with, $queue);
        }

        return new Receipt($mailer, true);
    }