map(fn(string $handlerClassName) => new $handlerClassName($this->request)) ->filter(fn(HandlesSlashCommand $handler) => $handler instanceof SignatureHandler) ->filter(function (SignatureHandler $handler) { $signatureParts = new SignatureParts($handler->getSignature()); return Str::is($signatureParts->getSlashCommandName(), $this->request->command); }); } protected function mapHandlersToAttachments(Collection $handlers): array { return $handlers ->sort( fn(SignatureHandler $handlerA, SignatureHandler $handlerB) => strcmp( $handlerA->getFullCommand(), $handlerB->getFullCommand(), ), ) ->map( fn(SignatureHandler $handler) => AttachmentField::create( $handler->getDescription(), "`/{$handler->getSignature()}`", ), ) ->all(); } }