C# - Linq - Techniques for avoiding repeating same pieces of code
If you're willing to use the DynamicLinq library, the problem becomes trivial. It allows you to pass a string parameter to the OrderBy method, bypassing your entire logic:
queryResult.OrderBy(column)

If this is related to doing a SQL database lookup, if you think about it, the issue you're facing it a bit of a self-imposed issue, because you start from a string value and you're eventually going to generate a string value (in the SQL query). The issue you're facing is that standard LINQ forces you to map it to an actual property of the entity, which in this case is an unnecessary mapping which DynamicLinq allows you to bypass.
If you want, you could add a bit of validation to confirm that the passed string is a known property of your entity type.
bool columnIsProperty = typeof(MyModel)
                           .GetProperties()
                           .Any(prop =&gt; prop.Name.ToLower() == column.ToLower());

if(columnIsProperty)
    queryResult = queryResult.OrderBy(column);