public function callbacks()
    {
        $dependent = false;
        $autosave  = false;
        $callbacks = [
            'beforeDestroy' => [],
            'beforeSave'    => []
        ];
        
        foreach ($this->associations() as $data) {
            switch ($data['type']) {
                case 'belongsTo':
                case 'hasMany':
                case 'hasOne':
                    if (
                        !empty($data['dependent']) &&
                        !$dependent
                    ) {
                        $callbacks = [
                            'beforeDestroy' => [
                                'alterDependencies'
                            ]
                        ];
                    }
                    # Fallthrough
                
                default:
                    if (
                        !empty($data['autosave']) &&
                        !$autosave
                    ) {
                        $callbacks = [
                            'beforeSave' => [
                                'saveDependencies'
                            ]
                        ];
                    }
                    break;
            }
            
            if ($autosave && $dependent) {
                break;
            }
        }
        
        return array_filter($callbacks);
    }