'Edge', str_contains($uaLower, 'chrome/') && ! str_contains($uaLower, 'edg/') => 'Chrome', str_contains($uaLower, 'safari/') && ! str_contains($uaLower, 'chrome/') => 'Safari', str_contains($uaLower, 'firefox/') => 'Firefox', str_contains($uaLower, 'instagram') => 'Instagram', str_contains($uaLower, 'whatsapp') => 'WhatsApp', default => 'Other', }; $os = match (true) { str_contains($uaLower, 'iphone') || str_contains($uaLower, 'ipad') => 'iOS', str_contains($uaLower, 'android') => 'Android', str_contains($uaLower, 'windows') => 'Windows', str_contains($uaLower, 'mac os') || str_contains($uaLower, 'macintosh') => 'macOS', str_contains($uaLower, 'linux') => 'Linux', default => 'Other', }; return [ 'device_type' => $device, 'browser' => $browser, 'os' => $os, ]; } }