Ordenar resultado de consulta scope para listado en index

Publicado hace 7 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.