Вы можете использовать whereBetweenсделку с датами и DateTimeс тем, modifyчтобы получить первое свидание.
$now = date('Y-m-d H:i:s');
$before = new DateTime();
$before->modify('-7 days');
$result = TelcoTransaction::where('telco_id', 1)
->whereBetween('created_at', [$before->format('Y-m-d H:i:s', $now])
->groupBy('created_at')
->get();
Просто обратите внимание, что группировка created_atбудет работать только с датами точно так же, включая секунды.