Ошибка совершенно верная: выбирать в запросе нужно только те колонки, которые указаны в группировке, иначе результат будет непредсказуемым. Ну а distinct тут и вовсе не нужен:
$emails = $data->groupBy('email')->pluck('email');
Через БД же он отрабатывает потому, что в
Laravel включен
strict-режим (и это хорошо).
Но то, что у вас переменная называется $client, наводит на мысли о том, что вы и вовсе желаете чего-то странного. Получить записи без дублей одним запросом вряд ли получится, потому что там нужно очень чётко указывать, какой результат вы хотите получить и запрос будет громоздким, если его вообще удастся составить. Такую задачу намного проще решить кодом, хоть это и не так эффективно по ресурсам. Если это разовая задача, то делать её однозначно стоит через PHP, если же постоянная - нужно думать над схемой БД и необходимыми данными.