Mi problema era el siguiente. En la aplicación para quinielas que estoy desarrollando, tengo las clásicas tablas de maestro y detalle, como se muestran a continuación:

No voy a explicar mucho el detalle de la aplicación, pero más o menos es el siguiente: quiero desplegar una forma que permita al jugador hacer un pronóstico, en esta aplicación es un número entero que va de -4 a 4, excluyendo el 0. Si existe un pronóstico del usuario, deberá mostrarlo en la forma. Si no existe, entonces deberá ser cero (una especie de nulo en esta aplicación). Obviamente se trata del caso típico de un left join, el SQL correcto sería:

SELECT * FROM juegos
LEFT JOIN pronosticos ON juegos.id = pronosticos.juego_id
WHERE jornada=1

Es decir, vamos a obtener todos los juegos de la jornada, haya pronóstico o no. Si no hay pronóstico, la variable diferencia, que es donde se guarda el pronóstico del usuario, sera NULL.

El problema viene cuando quiero traducir ese SQL al ORM de Laravel, lo que hice fue lo siguiente:

$juegos = Juego::where('jornada', '=', '1')
             ->leftJoin('pronosticos', 'juego.id', '=', 'pronosticos.juego_id')
             ->get()

Esta consulta funciona correctamente, trae los mismos registros que el query mostrado arriba, pero tiene el problema de que la columna id la trae como NULL. Esto sospecho que se debe a que trae dos columnas id, una para la tabla juegos y otra para la tabla pronosticos. Entonces el problema es hacer un alias de la columna id que me interesa traer.

Después de un par de horas de frustración encontré ->addSelect(), que es lo que hay que utilizar. El parámetro que acepta es una lista (array) de los campos que vamos a seleccionar, incluso con su as. Por lo que el código correcto quedaría de la siguiente forma:

$juegos = Juego::where('jornada', '=', '1')
             ->leftJoin('pronosticos', 'juego.id', '=', 'pronosticos.juego_id')
             ->addSelect(['juego.id as jid', 'visitante', 'local', 'diferencia'])
             ->get()

Y es más, siendo estrictos, ya ni siquiera necesitaríamos el alias a jid como en este caso, ya que solo estaríamos trayendo una sola columna id.

Problema resuelto.