Bueno despues de meses y meses... haciendo el post decidi intentarlo una vez más y salio a la primera...
para el que le sirva:
Código PHP:
$articulos = DB::table('articulo as art')
->join('detalle_ingreso as di', 'art.idarticulo', '=', 'di.idarticulo')
->select(DB::raw('MAX(created_at)'), DB::raw('CONCAT(art.codigo, " ", art.nombre) as articulo'), 'art.idarticulo', 'art.stock', 'di.precio_venta as precio_promedio')
->where('art.estado', '=', 'Activo')
->where('art.stock', '>', '0')
->orderBy('di.iddetalle_ingreso', 'DESC')
->groupBy('art.idarticulo')
->get();
Agregue el DB::raw('MAX(created_at)')... lo cual solo me filtraba el último articulo ingresado nada mas...
Así que agregue el ->groupBy('art.idarticulo') para que el filtro se aplique a cada grupo de articulos... y listo!