protected function make($name, array $attr, $save)
    {
        $definition = $this->getDefinition($name);
        $model = $this->makeClass($definition->getClass(), $definition->getMaker());

        // Make the object as saved so that other generators persist correctly
        if ($save) {
            $this->store->markPending($model);
        }

        // Get the attribute definitions
        $attributes = array_merge($this->getDefinition($name)->getDefinitions(), $attr);

        // Generate and save each attribute for the model
        $this->generate($model, $attributes);

        return $model;
    }