No SQL gerado, você precisa selecionar a coluna pela qual agrupa e precisa chamar o get() após o
groupBy
ou então você estaria chamando o groupBy
na coleção, não no objeto do construtor de consultas. Então você deve ser capaz de fazer:Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();
Ou menos eloquente
DB::table('transaction')
->join(
'transaction_type',
'transaction_type.id',
'=',
'transaction.transaction_type_id'
)->selectRaw('transationType.category, sum(amount)')
->groupBy('transactionTyle.category')
->get();