Ordenar resultado de consulta scope para listado en index

Publicado hace 10 meses por manueldva

Buenas tardes, estoy realizado el listado de un modulo que tiene dos tablas relacionadas en el modelo y al realizar la busqueda me devuelve un resultado que lo quiero ordernar por un campo en especifico, el problema es que al ser una consulta que tiene 2 tablas no se como hacerlo... el codigo que tengo en el modelo es el siguiente:

public function scopeType($query, $type, $valor) 
    {
		
		if ($type == 'apellido'){
            $query->whereHas('persona', function ($personas) use($valor) {
    			$personas->where('apellido', 'like', '%' . $valor . '%')->orderBy('apellido');
			});
        } else if ($type == 'nombre')
        {
            $query->whereHas('persona', function ($personas) use($valor) {
    			$personas->where('nombre', 'like', '%' . $valor . '%')->orderBy('apellido');
            });
            
        } else if ($type == 'nrodocumento') 
        {
			$query->whereHas('persona', function ($personas) use($valor) {
    			$personas->where('nrodocumento', 'like', '%' . $valor . '%')->orderBy('apellido');
            });

        } else
        {
            $query;
        }
    }

Y en el controlador:

$empleados = Empleado::type($request->get('type'), $request->get('val'))->paginate(10);

la consulta filtra en todos los casos pero por alguna razon no ordena.

Desde ya gracias y saludos a todos.