Eu consegui trabalhar e postar a resposta aqui, caso alguém precise de ajuda no futuro.
Basicamente podemos fazer um simples
where
consulta com @>
operador. E o valor pode ser codificado em json com o email pesquisado. A seguir está a consulta para pesquisar um email específico sem usar whereRaw
método. $contacts = Contact::where("emails", '@>', '[' . json_encode(['value' => $query]) . ']')->get();
Espero que ajude mais alguém no futuro :)