This lesson shows how to create a custom decorator in NestJS that attaches metadata to a controller method using SetMetadata. The Reflector class is then used in a guard to read this metadata at runtime. The guard compares the metadata roles with the user's roles to decide if access should be granted. The execution table traces each step: attaching metadata, triggering the guard, reading metadata, checking user roles, making a decision, and finally allowing the request to proceed or denying it. Variables like metadataKey, metadataValue, userRoles, and accessGranted change as the code runs. Key moments clarify why Reflector needs the target to read metadata, what happens if roles don't match, and that custom decorators can attach any data. The quiz tests understanding of metadata retrieval, decision steps, and effects of different user roles. This visual execution helps beginners see how decorators and Reflector work together in NestJS to control access and behavior dynamically.