O sum
precisa ser com o DB::raw
mesmo, assim como você tinha feito na sua tentativa.
Tem um exemplo funcional aqui:
$sales = DB::table('order_lines')
->join('orders', 'orders.id', '=', 'order_lines.order_id')
->select(DB::raw('sum(order_lines.quantity*order_lines.per_qty) AS total_sales'))
->where('order_lines.product_id', $product->id)
->where('orders.order_status_id', 4)
->first();
retirado dessa thread do laravel.io:
http://laravel.io/forum/07-30-2014-sum-of-two-columns-multiplied-in-eloquent
Veja que ele faz o select direto nesse sum, sem outros campos, e usa o first() no final (já que o sum é unico)