In der generierten SQL müssen Sie die Spalte auswählen, nach der Sie gruppieren, und Sie müssen get() nach groupBy aufrufen andernfalls würden Sie groupBy aufrufen für die Sammlung, nicht für das Abfrage-Generator-Objekt. Sie sollten also in der Lage sein:
Transaction::selectRaw('transactionType.category, sum(amount) as amount')
->with('transactionType')
->groupBy('transactionType.category')
->get();
Oder weniger eloquent
DB::table('transaction')
->join(
'transaction_type',
'transaction_type.id',
'=',
'transaction.transaction_type_id'
)->selectRaw('transationType.category, sum(amount)')
->groupBy('transactionTyle.category')
->get();