Get decription based on SampledPositionProperty entry

I have multiple entities with multiple position. I am using SampledPositionProperty to add all positions for each property. Everything works fine but when I select any entity on Cesium page, it’s description property is showing the last entry from position array. Ideally, description and other fields should be updated based on the timestamp.

for (let [key, positions] of  entityMap.entries()){
            if(positions.length > 0){
                let sortedPositions = positions.sort(
                    (p1, p2) => (new Date(p1.time_of_entry) > new Date(p2.time_of_entry)) ? 1 : (new Date(p1.time_of_entry) < new Date(p2.time_of_entry)) ? -1 : 0);
               
                let property = new Cesium.SampledPositionProperty();
                for(let position of sortedPositions){
                    // console.log(`vehicle_id=${position.vehicle_id} - ${position.longitude} - ${position.latitude} - ${position.time_of_entry}`);
                    let time = JulianDate.fromDate(new Date(position.time_of_entry));
                    let pos = Cartesian3.fromDegrees(position.longitude, position.latitude, 0);
                    property.addSample(time, pos);
                    prepareOrUpdateEntity(position,property);
                }
            }
        }


function prepareOrUpdateEntity(pos,property){
    var entityColor = Color.DARKBLUE;
    if(pos.danger_level_id != null && pos.danger_level_id == 2)
    {
        entityColor = Color.YELLOW;
    }
    else if(pos.danger_level_id != null && pos.danger_level_id == 3){
        entityColor = Color.DARKORANGE;
    }
    else if(pos.danger_level_id != null && pos.danger_level_id == 4){
        entityColor = Color.DARKRED;
    }
                
    let veh = viewer.entities.getById(pos.vehicle_id);
    if(veh){
        veh.position = property;
        veh.description = buildSummaryTable(pos);
        veh.label.fillColor = entityColor;
        veh.orientation = new Cesium.VelocityOrientationProperty(property);
    }
    else{
        var vehicle = new Entity({
            id: pos.vehicle_id,
            position: property,
            label: {
                text: pos.vehicle_id,
                fillColor: entityColor,
                font: '15pt monospace',
                style: LabelStyle.FILL_AND_OUTLINE,
                outlineWidth: 2,
                verticalOrigin: VerticalOrigin.TOP,
                pixelOffset: new Cartesian2(10, 25),
                show: true
            },
            orientation: new Cesium.VelocityOrientationProperty(property),
            description: buildSummaryTable(pos),
        });
    
        vehicle.addProperty("type");
        vehicle.type = "vehicle";
        viewer.entities.add(vehicle);
    }
}