# How to perform model evaluation for Poisson GLM regression?

I'm still fundamentally confused how one should evaluate how well a GLM Poisson regression model fits the data. Here is an example, using R and the dataframe total_data, whereby food_type is a categorical variable.

Call:
glm(formula = discrete_counts ~ food_type, family = poisson, data = total_data)
Deviance Residuals:
Min       1Q   Median       3Q      Max
-0.1808  -0.1808  -0.1698  -0.1530   2.7221
Coefficients:
Estimate Std. Error  z value Pr(>|z|)
(Intercept)         -4.11341    0.01711 -240.456  < 2e-16 ***
food_typeVEG1    -0.12623    0.02910   -4.337 1.44e-05 ***
food_typeVEG2    -0.58227    0.03530  -16.495  < 2e-16 ***
food_typeVEG3 -0.14338    0.04392   -3.264   0.0011 **
food_typeVEG4 -0.10044    0.04365   -2.301   0.0214 *
food_typeVEG5    -0.33368    0.03632   -9.187  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 72673  on 617065  degrees of freedom
Residual deviance: 72340  on 617060  degrees of freedom
AIC: 89300
Number of Fisher Scoring iterations: 6


So, the residual deviance is less than the degrees of freedom. So, this model doesn't suffer from overdisperson. The AIC score is huge, which means the model has little predictive value.

How else can I evaluate how good this model is?