/**
  * Delete relations
  *
  * @param int|\ORM\Model $payload
  * @return bool
  */
 function delete($payload = null)
 {
     $id = null;
     if ($payload instanceof Model && isset($payload->{$payload::getPrimaryKey()}) && is_numeric($payload->{$payload::getPrimaryKey()})) {
         $id = $payload->{$payload::getPrimaryKey()};
     } else {
         if (is_numeric($payload)) {
             $id = $payload;
         }
     }
     $model = $this->model;
     $pKey = $model::getPrimaryKey();
     if (is_null($id)) {
         // remove all linked rows
         $sql = "DELETE FROM {$this->tableName} WHERE " . $this->getForeignKey() . ' = ?';
         return Model::getConnection()->runQuery($sql, [$this->model->{$pKey}]);
     } else {
         return $this->pivot()->findOne([$this->getForeignKey(), $this->getForeignKeyRelated()], [$this->model->{$pKey}, $id])->destroy();
     }
 }