get('pdf_driver')) { case 'dompdf': return [ 'pdf_driver' => [ 'required', 'string', ], ]; case 'gotenberg': return [ 'pdf_driver' => [ 'required', 'string', ], 'gotenberg_host' => [ 'required', 'url', ], 'gotenberg_papersize' => [ 'required', 'string', function ($attribute, $value, $fail) { $reg = "/^\d+(pt|px|pc|mm|cm|in) \d+(pt|px|pc|mm|cm|in)$/"; if (! preg_match($reg, $value)) { $fail('Invalid papersize, must be in format "210mm 297mm". Accepts: pt,px,pc,mm,cm,in'); } }, ], 'gotenberg_margins' => [ 'nullable', 'string', ], ]; default: return [ 'pdf_driver' => [ 'required', 'string', ], ]; } } }