/**
  * Activate Module
  */
 public function activate($force = false, $check_only = false)
 {
     //	Check Module Item
     if ($this->moduleItem) {
         //	Check Already Activated
         if (!$check_only && $this->moduleItem->isActivated()) {
             return true;
         }
         //	Get Dependency
         $passed_dependency = true;
         //	Messages
         $messages = array();
         //	Loop Each Dependency
         foreach ($this->dependsOn as $dModule => $dVersion) {
             //	Add Message
             $messages[$dModule] = array();
             //	Check Module Exists
             if (ModuleItem::moduleExists($dModule, $dVersion)) {
                 //	Check if Module is Activated
                 if (!ModuleItem::moduleEnabled($dModule)) {
                     //	Set Error
                     $passed_dependency = false;
                     //	Add Message
                     $messages[$dModule]["exists"] = true;
                     $messages[$dModule]["activated"] = false;
                     $messages[$dModule]["version_match"] = true;
                     $messages[$dModule]["version"] = ModuleItem::findModule($dModule)->version;
                     $messages[$dModule]["wanted_version"] = $dVersion;
                 } else {
                     //  Unset
                     unset($messages[$dModule]);
                 }
             } else {
                 //	Set Error
                 $passed_dependency = false;
                 //	Add Message
                 $messages[$dModule]["exists"] = false;
                 $messages[$dModule]["activated"] = false;
                 $messages[$dModule]["version_match"] = false;
                 $messages[$dModule]["wanted_version"] = $dVersion;
                 //	Check if Any Version is Available
                 if (ModuleItem::moduleExists($dModule)) {
                     //	Add Message
                     $messages[$dModule]["exists"] = true;
                     $messages[$dModule]["version"] = ModuleItem::findModule($dModule)->version;
                 }
             }
         }
         //	Check for Force
         if ($force) {
             $passed_dependency = true;
         }
         //	Check Valid
         if ($passed_dependency) {
             //	Passed Activation
             $passed_activation = true;
             //	Messages
             $messages2 = array();
             //	Check for Messages
             foreach ($messages as $dModule => $data) {
                 //	Check Module Exists
                 if ($data["exists"] && $data["version_match"]) {
                     //	Get The Required Module
                     $rModule = $this->app["laravel-modules"]->module($dModule);
                     //	Activate Module
                     $rModule->activate();
                     //	Run the Dependency Module Activation Hook
                     $rModule->runHook("activated");
                 } else {
                     //	Set Error
                     $passed_activation = false;
                     //	Set Message
                     $messages2[$dModule] = $data;
                 }
             }
             //	Check & Return
             if ($passed_activation) {
                 //  Check for Not Check Only
                 if (!$check_only) {
                     //	Activate Module
                     $this->is_enabled = true;
                     $this->moduleItem->activate();
                     //  Register Package so things are available from the Module
                     $this->register();
                     //	Run the Activation Hook
                     $this->runHook("activated");
                 }
                 //	Return
                 return true;
             } else {
                 return $messages2;
             }
         } else {
             return $messages;
         }
     }
     return null;
 }