Dans le SQL généré, vous devez sélectionner la colonne par laquelle vous groupez et vous devez appeler le get() après le groupBy
sinon vous appelleriez le groupBy
sur la collection, pas sur l'objet générateur de requêtes. Vous devriez donc pouvoir faire :
Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();
Ou moins éloquent
DB::table('transaction')
->join(
'transaction_type',
'transaction_type.id',
'=',
'transaction.transaction_type_id'
)->selectRaw('transationType.category, sum(amount)')
->groupBy('transactionTyle.category')
->get();