/**
  * Register service.
  *
  * @param Application $app
  *
  * @return mixed
  */
 public function register(Application $app)
 {
     $app->singleton('material', function ($app) {
         return new Material($app['http']);
     });
     $app->singleton('material.temporary', function ($app) {
         return new Temporary($app['http']);
     });
 }
 /**
  * Register service.
  *
  * @param Application $app
  *
  * @return mixed
  */
 public function register(Application $app)
 {
     $app->singleton('message', function ($app) {
         return new MessageFactory($app);
     });
     $messages = ['Text', 'Articles', 'Article', 'Image', 'Link', 'Location', 'Music', 'Transfer', 'ShortVideo', 'Video', 'Voice'];
     foreach ($messages as $message) {
         $app->bind('message.' . Str::snake($message), function ($app) use($message) {
             $class = __NAMESPACE__ . '\\' . $message;
             return new $class();
         }, false);
     }
 }
 /**
  * Register service.
  *
  * @param Application $app
  *
  * @return mixed
  */
 public function register(Application $app)
 {
     $app->singleton('menu', function ($app) {
         return new Menu($app['http']);
     });
 }