Вы можете использовать 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
будет работать только с датами точно так же, включая секунды.