handlers[] = $handler; return $this; } public function build(): Login_Handler { $first = array_shift( $this->handlers ); array_reduce( $this->handlers, function ( Login_Handler $current, Login_Handler $next ) { $current->then( $next ); return $next; }, $first ); return $first; } }