$extraContext */ public function start( ManagedEnvironment $tenant, ?ProviderConnection $connection, string $operationType, callable $dispatcher, ?User $initiator = null, array $extraContext = [], ): ProviderOperationStartResult { if ($this->isExchangePowerShellInvocationOperation($operationType)) { return $this->trustedStarter->block( tenant: $tenant, connection: $connection, operationType: $operationType, reasonCode: ProviderReasonCodes::ProviderBindingUnsupported, extensionReasonCode: 'ext.exchange_powershell_invocation_gate_required', reasonMessage: 'Exchange PowerShell invocation must start through the invocation gate.', initiator: $initiator, ); } return $this->trustedStarter->start( tenant: $tenant, connection: $connection, operationType: $operationType, dispatcher: $dispatcher, initiator: $initiator, extraContext: $extraContext, ); } private function isExchangePowerShellInvocationOperation(string $operationType): bool { return $operationType === 'tenant_configuration.exchange_powershell_invocation'; } }