### Elasticsearch Version

8.11.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

MacOS

### Problem Description

When sending a ESQL query with the `enrich` command that involves a policy that does not existing a `NullPointerException` is thrown and shown as error messages to the user:

Query:
```
row a  = 1| enrich missing-policy
```

Returns:
```
null_pointer_exception - Cannot invoke "org.elasticsearch.xpack.core.enrich.EnrichPolicy.getMatchField()" because "policy" is null
```

### Steps to Reproduce

See above.

### Logs (if relevant)

_No response_
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/analysis/Analyzer.java
@Override
        protected LogicalPlan rule(LogicalPlan plan, AnalyzerContext context) {
            return plan.transformExpressionsUp(
                UnresolvedFunction.class,
                uf -> resolveFunction(uf, context.configuration(), context.functionRegistry())
            );
        }
    }
    /**
     * Rule that removes duplicate projects - this is done as a separate rule to allow
     * full validation of the node before looking at the duplication.
     * The duplication needs to be addressed to avoid ambiguity errors from commands further down
     * the line.
     */
    private static class RemoveDuplicateProjections extends BaseAnalyzerRule {
        @Override
        protected boolean skipResolved() {
            return false;
        }
        @Override
        protected LogicalPlan doRule(LogicalPlan plan) {
            if (plan.resolved()) {
                if (plan instanceof Aggregate agg) {