Due to the dynamic way our caveats work, we are looking for a way to not create a relationship if a particular caveat would return false immediately. Is there a way to evaluate a caveat without creating the relationship? We could have a process that creates it temporarily, checks the permission and then deletes it based on the result, but that seems inefficient.