shellExec('pdfinfo', '-isodates', $filepath); $data = []; collect($lines) ->map(fn(string $line) => explode(':', $line, 2)) ->filter(fn(array $parts) => count($parts) === 2) ->each(fn(array $parts) => $data[trim($parts[0])] = trim($parts[1])); return Metadata::fill($data); } }