def METHOD_NAME(self, request: PolicyRequest) -> PolicyResult:
    if "event" not in request.context:
        return PolicyResult(False)
    event: Event = request.context["event"]
    matches: list[PolicyResult] = []
    messages = []
    checks = [
        self.passes_action,
        self.passes_client_ip,
        self.passes_app,
        self.passes_model,
    ]
    for checker in checks:
        result = checker(request, event)
        if result is None:
            continue
        LOGGER.info(
            "Event matcher check result",
            checker=checker.__name__,
            result=result,
        )
        matches.append(result)
    passing = any(x.passing for x in matches)
    messages = chain(*[x.messages for x in matches])
    result = PolicyResult(passing, *messages)
    result.source_results = matches
    return result