**Description**
The `airflow.models.baseoperator.chain()` is a very useful and convenient way to add sequential task dependencies in DAGs but the function only supports tasks of a `BaseOperator` type.

**Use case / motivation**
Users who create tasks via the `@task` decorator will not be able to use the `chain()` function to apply sequential dependencies that do not share an `XComArg` implicit dependency.

**Are you willing to submit a PR?**
Absolutely. 🚀 

**Related Issues**
None

airflow/models/baseoperator.py
elif len(dags) == 1:
            dag = dags.popitem()[1]
        else:
            raise AirflowException(
                "Tried to create relationships between tasks that don't have "
                "DAGs yet. Set the DAG for at least one "
                "task and try again: {}".format([self] + task_list)
            )
        if dag and not self.has_dag():
            
            
            self.dag = dag
            self.dag.task_group.add(self)
        for task in task_list:
            if dag and not task.has_dag():
                
                
                task.dag = dag
                task.dag.task_group.add(task)
            if upstream:
                task.add_only_new(task.get_direct_relative_ids(upstream=False), self.task_id, self.dag.dag_id)
                self.add_only_new(self._upstream_task_ids, task.task_id, task.dag.dag_id)
                if edge_modifier:
                    edge_modifier.add_edge_info(self.dag, task.task_id, self.task_id)
            else:
                self.add_only_new(self._downstream_task_ids, task.task_id, task.dag.dag_id)
                task.add_only_new(task.get_direct_relative_ids(upstream=True), self.task_id, self.dag.dag_id)
                if edge_modifier:
                    edge_modifier.add_edge_info(self.dag, self.task_id, task.task_id)
    def set_downstream(