qr_token); } public function employeeUrl(Employee $employee): string { $path = config('frontdesk.badge.employee_qr_url_path', '/eq'); return url($path.'/'.$employee->qr_token); } public function svg(Visit $visit, int $size = 200): string { return $this->renderSvg($this->visitUrl($visit), $size); } public function employeeSvg(Employee $employee, int $size = 200): string { return $this->renderSvg($this->employeeUrl($employee), $size); } public function kioskUrl(string $deviceToken): string { return route('frontdesk.kiosk.device', $deviceToken); } public function kioskSvg(string $deviceToken, int $size = 200): string { return $this->renderSvg($this->kioskUrl($deviceToken), $size); } protected function renderSvg(string $url, int $size = 200): string { $options = new QROptions([ 'outputType' => QRCode::OUTPUT_MARKUP_SVG, 'scale' => 5, 'imageBase64' => false, ]); return (new QRCode($options))->render($url); } }