To solve this problem, we first need to define the variables and constraints based on the given information.

Let's denote:
- $H$ as the number of hardcover books displayed and sold.
- $P$ as the number of paperback books displayed and sold.

The profit made from selling hardcover books is $5H$, and the profit made from selling paperback books is $2P$. The total profit can be represented as $5H + 2P$.

We have several constraints:
1. The bookstore can display and sell at most 500 books: $H + P \leq 500$.
2. A minimum of 50 books displayed are hardcover: $H \geq 50$.
3. At least 5 times as many readers prefer paperback books to hardcover books: $P \geq 5H$.

The objective is to maximize the total profit under these constraints.

Given the constraints, we can see that the relationship between $H$ and $P$ will significantly impact our solution. Since $P \geq 5H$, substituting this into our first constraint gives us $H + 5H \leq 500$, which simplifies to $6H \leq 500$. Thus, $H \leq \frac{500}{6} \approx 83.33$. However, since we cannot have a fraction of a book and we are constrained by $H \geq 50$, the number of hardcover books will be at least 50 but must also satisfy the constraint derived from the preference for paperback books.

Now, considering our objective to maximize profit and the constraints, we aim to find the optimal values of $H$ and $P$ within these bounds.

To translate this into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Bookstore_Profit")

# Define variables
H = m.addVar(lb=50, vtype=GRB.INTEGER, name="Hardcover_Books")
P = m.addVar(vtype=GRB.INTEGER, name="Paperback_Books")

# Add constraints
m.addConstr(H + P <= 500, "Total_Books_Constraint")
m.addConstr(P >= 5 * H, "Preference_Constraint")

# Objective function: Maximize profit
m.setObjective(5*H + 2*P, GRB.MAXIMIZE)

# Optimize the model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Hardcover Books: {H.x}")
    print(f"Paperback Books: {P.x}")
    print(f"Maximum Profit: ${5*H.x + 2*P.x:.2f}")
else:
    print("No optimal solution found")
```